#include "fabricaObjetos.h"
#include <iostream>

using namespace std;

fabricaObjetos::fabricaObjetos() //constructor de la clase, por ahora vacio
{
}

filtros * fabricaObjetos::crearFiltro(string tipo)
{
    filtros *f=0;  //apuntador que referenciara el filtro que se va a crear
    
    //////////////////////////////Bloque de seleccion de filtro/////////////////////////
    
    //* OJO cada vez que se cree un nuevo filtro se debe incluir aqui
    //* agregando un nuevo "else if"
    //* tambien se po  //apuntador que referenciara el filtro que se va a crear
    
    //////////////////////////////Bloque de seleccion de filtro/////////////////////////
    
    //* OJO cada vez que se cree un nuevo filtro se debe incluir aqui
    //* agregando un nuevo "else if"
    //* tambien se podria implemetar una tabla de busqueda o algun otro metodo mas avanzado para
    //* seleccionar el filtrodria implemetar una tabla de busqueda o algun otro metodo mas avanzado para
    //* seleccionar el filtro
    

    if(tipo=="Mediana")
    {
        f = new filtroMediana();
    }
    else if(tipo=="Bilateral")
    {
        f = new filtroBilateral();
    }
    else if(tipo=="Gauss")
    {
        f = new filtroGauss();
    }
    else if(tipo=="MeanShift")
    {
        f = new filtroMeanShift();
    }
    else
        f= new filtroMediana(); // si el nombre pasado en la variable tipo
								//no corresponde a los anteriores, se creara uno de mediana

   //////////////////////////////////////////////////////////////////////////////////

    return f;

}

histograma * fabricaObjetos::crearHistograma(string tipo)
{
    histograma *a=0;  //apuntador que referenciara a el histograma que se va a crear
    
    //////////////////////////////Bloque de seleccion de filtro/////////////////////////
    
    //* OJO cada vez que se cree un nuevo histograma se debe incluir aqui
    //* agregando un nuevo "else if"
    //* tambien se podria implemetar una tabla de busqueda o algun otro metodo mas avanzado para
    //* seleccionar el histograma

    if((tipo=="RGB")||(tipo=="Rgb")||(tipo=="rgb"))
    {
        a = new histogramaRGB();
    }
    else if((tipo=="Tinte")||(tipo=="tinte")||(tipo=="TINTE")||(tipo=="hsv")||(tipo=="HSV")||(tipo=="Hsv"))
    {
        a = new histogramaTinte();
    }

    return a;
}
